home *** CD-ROM | disk | FTP | other *** search
/ SunSoft Catalyst CDWARE 1996 May to August / Catalyst CDWARE 1996 May to August.iso / .products / Apogee / _text / ProductInfo.txt < prev   
Text File  |  1996-02-16  |  9KB  |  169 lines

  1. The products offered by Apogee Software Inc. are:
  2.  
  3.     -    Apogee-C, a high-performance C compiler
  4.     -    Apogee-C++, a high-performance C++ compiler
  5.     -    Apogee-FORTRAN 77, a high-performance FORTRAN compiler
  6.     -    Apogee-Fortran 90, a high performance Fortran 90 compiler
  7.  
  8.     -    SP/MP KAP-C, optimizing C preprocessors
  9.     -    SP/MP KAP-FORTRAN, optimizing FORTRAN preprocessors
  10.  
  11. The Apogee compilers adhere to relevant language and system standards,
  12. including those determined by ANSI, ISO, and SPARC International.  By working
  13. within the open marketplace, we are able to offer products which are
  14. compatible with existing products, but which provide exceptional performance.
  15.  
  16. The KAP products are available in either Single Processor (SP) or
  17. Multi-Processor versions (MP).  The MP versions are capable of
  18. automatically detecting parallelism in code and/or arranging for
  19. multiple processors to be applied simultaneously to solve the problem.
  20.  
  21. Q.    Is it true that Sun's performance announcement of the SPARCstation 5,
  22.     10, and 20 did didn't use SunPro compilers?
  23.  
  24. A.    That is correct.  Sun Microsystems chose to announce performance based
  25.     on Apogee's compilers, since this substantially boosted their benchmark
  26.     results.  For example, the SPECint92 and SPECfp92 ratings for Apogee's
  27.     compilers are 20-30% higher than the ratings for the SunPro SC2.0.1
  28.     release of compilers running on identical SPARCstation 10's, and 8-12%
  29.     higher than SunPro's SC3.0 (depending on the exact system
  30.     configuration).  Other SPARC system vendors, including Cray Research
  31.     Superservers, Solbourne, Tatung, and Axil Workstations, depend on
  32.     Apogee's compilers to get the most out of their systems.
  33.  
  34. Q.    How was Apogee able to achieve this performance?
  35.  
  36. A.    Apogee's compilers were developed from a clean sheet of paper over the
  37.     past few years.  This allowed us to design a compiler specifically
  38.     suited to RISC architectures like SPARC.  We were also able to combine
  39.     state of the art compiler optimization technology with more traditional
  40.     optimization methods, enabling Apogee's compilers to achieve
  41.     significantly higher levels of optimization than compilers employing
  42.     only one general optimization scheme.
  43.  
  44.     In addition, we teamed with Kuck & Associates Inc., which has brought
  45.     its expertise in the supercomputing arena to the SPARC market.  By
  46.     working closely with them, we are able to achieve a symbiosis which
  47.     allows us to focus on what we do best, while letting them focus on
  48.     what they do best.  The result?  A significant performance benefit to
  49.     you, the customer.
  50.  
  51. Q.    In what ways does the RISC architecture affect compiler design?
  52.  
  53. A.    The RISC concept has always relied on trading off functionality
  54.     between the compiler and the hardware.  CISC systems make the
  55.     compiler's job easy by offering complex instructions and addressing
  56.     modes which closely match high-level language constructs.  RISC
  57.     designs, however, break those high-level language constructs into a
  58.     series of simpler instructions.  Each of the instructions runs much
  59.     faster.  However, unless the compiler is able to reduce the number of
  60.     instructions, the performance advantage is diminished.
  61.  
  62.     Apogee's compilers are specifically designed with the RISC model in
  63.     mind.  Instead of focusing on proper selection of a complicated
  64.     addressing mode, we focus on eliminating redundancies which result
  65.     from the larger number of simpler instructions.  Internally we
  66.     represent the code much as it will eventually appear in the assembly
  67.     file; the optimizations are directly applied to SPARC-like code.  This
  68.     is one of the advantages of the clean sheet design--we have no CISC
  69.     baggage left over.  Designed from the very start to efficiently and
  70.     effectively handle RISC architectures, our compilers don't have to
  71.     convert to or from CISC instructions at some point in the compiler.
  72.  
  73. Q.    Specifically what optimizations do you do?
  74.  
  75. A.    We have woven the standard "textbook" optimizations into more
  76.     sophisticated optimizations which originally appeared in the
  77.     supercomputer arena.  Our proprietary technology permits us to take
  78.     advantage of the strengths of classic "loop-sensitive" optimization as
  79.     well as the "loop-insensitive" methods developed over the last decade.
  80.  
  81.     Among the standard optimizations, we perform constant folding and
  82.     algebraic transformations, elimination of common subexpressions (both
  83.     locally and globally), propagation of constants (both locally and
  84.     globally), and elimination of copies and dead code (locally and
  85.     globally).  We do global backward and forward code motion in addition
  86.     to extensive strength reduction and reassociation.  We eliminate
  87.     induction variables, unroll loops, and eliminate tail recursion where
  88.     possible.  We apply sophisticated memory reference analysis which
  89.     allows us to maximize the allocation of variables to registers while
  90.     minimizing memory traffic.  Our register allocation uses a priority-
  91.     based graph coloring algorithm, and we delay allocation of registers
  92.     within a block until after reordering the instructions for maximum
  93.     performance, thereby permitting greater freedom in matching the
  94.     specific instruction sequence with the hardware's capabilities.  This
  95.     allows us to take maximum advantage of the complex pipelines of the
  96.     latest SPARC processors.
  97.  
  98.     In addition to the above intra-procedural optimizations, we have a rich
  99.     set of inter-procedural optimizations.  We have extended our memory
  100.     analysis to take account of which specific variables and which
  101.     specific registers are read and/or modified across calls, and we fold
  102.     called functions inline.
  103.  
  104. Q.    You have good results on the SPEC benchmarks, but what does that mean
  105.     for my application?
  106.  
  107. A.    Together these optimizations allow us to achieve maximum performance on
  108.     real applications, not just benchmarks.  Certainly the optimizations
  109.     are useful on benchmarks; we don't deny that.  But the general nature
  110.     of the algorithms we use are also able to recognize opportunities for
  111.     optimization in real-world programs.  We do not have to rely on clever
  112.     schemes to recognize benchmarks or pattern match on particular input
  113.     sequences to achieve our performance.  Even as the code gets more
  114.     complex, we are still able to optimize extremely well.  Many of our
  115.     competitors cannot make that claim.
  116.  
  117. Q.      I'm involved in numerical modeling.  I want to get the most out of my
  118.         workstation.  Can you help?
  119.  
  120. A.      We think so.  Many of the optimization techniques used by Apogee and
  121.         Kuck & Associates were first applied in the supercomputing world,
  122.         where performance has always been aggressively sought.  The
  123.         optimizations we perform are at their best in that environment; this
  124.         is where we are especially strong against our competition.  If you are
  125.         seeking performance, we strongly encourage you to look at our
  126.     compilers.
  127.  
  128. Q.      If I use Apogee's compilers, will I have to change my source code?
  129.  
  130. A.      Apogee has always striven to adhere to industry standards.  We are
  131.         committed to the open marketplace, and the standards which exist
  132.         therein.  Our compilers conform to the standards set by various
  133.         government entities (eg. ANSI, ISO, MIL-STD), as well as de facto
  134.         standards set by the marketplace (eg. VMS extensions, Kernighan and
  135.         Ritchie dialect, pcc).  If your source code also adheres to these
  136.         standards, no changes should be required to begin using Apogee's
  137.         compilers.  Our sophisticated warning messages may help you find bugs
  138.         which were undetected, however, so you may find that you want to make
  139.         changes!
  140.  
  141. Q.    Will I need to change existing tools to use your compilers?
  142.  
  143. A.    Because Apogee conforms to all of the SPARC Architecture
  144.     specifications, you can continue using all of your old tools with our
  145.     compilers.  We do, however, verify compatibility with a number of tools
  146.     which, in our opinion, are outstanding products.  These include the
  147.     TotalView debugger from BBN, Sentinel from AIB Software, the gdb
  148.     debugger from GNU, and the SNiFF+ development environment from
  149.     takeFive, among others.
  150.  
  151. Q.      Can you tell me more about Apogee?
  152.  
  153. A.      Apogee Software is a privately held company specializing in the design,
  154.         development, and production of highly optimizing compilers for RISC
  155.         systems.  The company founders have decades of experience in
  156.         developing compilers, largely in the supercomputing and mainframe
  157.         markets.  The focus on performance in the RISC workstation marketplace
  158.         has given us the opportunity to bring our sophisticated technology to
  159.         a broader audience.
  160.  
  161. Q.      And Kuck & Associates?
  162.  
  163. A.      Kuck & Associates are experts in the field of automatic optimization
  164.         tools.  Their main product is a preprocessor which, by performing
  165.         sophisticated data dependence analysis, is able to automatically
  166.         uncover parallel, vector, and cache management opportunities within
  167.         programs.  After analyzing an application, KAP chooses the most
  168.         efficient methods for executing the program on the SPARC architecture.
  169.